perm filename HAL.PL[HAL,HE] blob
sn#119944 filedate 1974-09-22 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00008 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TYPES
C00003 00003 $ EXEC_FILES
C00004 00004 $ DELIMITERS
C00005 00005 $ RESERVED_WORDS
C00007 00006 $ NON_TERMINAL_SYMBOLS
C00008 00007 $ CLASSES
C00010 00008 $ PRODUCTIONS
C00034 ENDMK
C⊗;
TYPES
{Algol types}
TLABEL TPROCEDURE TINTEGER TSTRING
{Hal types}
TFRAME TPLANE TVECTOR TTRANS TSCALAR
$ EXEC_FILES
HALEX
$ DELIMITERS
"=>" # & ⊗ |
$ RESERVED_WORDS
{Algol}
RETURN ELSE WHILE DO THEN STEP LOAD_MODULE UNTIL
BEGIN IF GOTO PROCEDURE ARRAY SCALAR END FOR ABS
DIV MOD BOOLEAN
TRUE FALSE
INTEGER
comment Here are the HAL unique reserved words;
STOP DONE MOVE GO TO TRACING MAINTAINING ORIENTATION FROM VIA
USING DURING MEANWHILE YELLOW BLUE APPROACH DEPARTURE DEPROACH
FORCE FREE MASS LOCATION BY TOLERANCE SEARCH ACROSS NORMAL_TO
INCREMENT REPEATING ON CENTER DRIVE ASSERT AT
STRING DEF_WRT FIX_WRT FIXDEF_WRT
UNITS CM INCHES JIFFIES SECONDS MILLISECONDS KG GM LBS OZ RADIANS
DEGREES BOLLES EULER ATTACH LOC ORIENT WITHIN DURATION
FRAME PLANE VECTOR TRANS COFFEE_POT
$ NON_TERMINAL_SYMBOLS
BLAT STBLAT
$ CLASSES
@ARM YELLOW BLUE
@ALGLTP LABEL PROCEDURE STRING INTEGER
@HALTP SCALAR FRAME TRANS VECTOR PLANE
@ANYTP ALGLTP HALTP
@WRT FIXDEF_WRT DEF_WRT FIX_WRT comment With-respect-to operators;
@UNOPE NOT ABS + - ¬ { Unary operators}
@RL < > = ≠ ≤ ≥ comment Relations;
@DCLW ANYTP UNITS WRT
@REQ SOURCE_FILE LOAD_MODULE
@CFRAME ARM TFRAME
@WRTTP VECTOR FRAME PLANE
@ALGVAR TINTVAR TSTRINGVAR TREALVAR
@HALVA TFRAME TPLANE TVECTOR TTRANS
@DECLVA ALGVAR HALVA
@VAR DECLVA TSANSTYPE
@GEEQ ≤ ≥
@S01 ↓
@S02 / *
@S03 + -
@SL1 ↓ * / + -
@SL2 * / + -
@SL3 + -
@F01 ↓
@F02 * /
@F03 + -
@FL1 ↓ * / + -
@FL2 * / + -
@FL3 + -
$ PRODUCTIONS
→; INITIALIZE SCAN ↓BLOCK ≡FIN
BLOCK:BEGIN → ; ENTERBLOCK SCAN ¬ERR1
TSTRING →; NAMEBLOCK SCAN ≡GOSTAT
GOSTAT:ANY → SAME; ↓STMT ≡NEXTSTMT
NEXTSTMT: ; → ; SCAN ≡FINSTAT
END →; EXITBLOCK SCAN ↑ ¬ERR0
FINSTAT:;→; SCAN ≡FINSTAT
END →; EXITBLOCK SCAN ↑ ¬GOSTAT
STMT:; →SAME; ↑
FOR → ; BEGFOR SCAN 2 ↓FORST ≡ENDST
ANYTP → SAME; SCAN ↓DCL ≡ENDST
MOVE → ; BEGMOVE SCAN ↓MOVST ≡ENDST
SEARCH →; BEGSEARCH SCAN ↓SEARCHST ≡ENDST
BEGIN → SAME; ↓BLOCK ≡ENDST
DECLVA → SAME BEGASS SCAN ↓ASSGNT ≡ENDST
ANY →; ERR SCAN ≡STMT
ENDST:ANY → SAME; ↑
DCL:ANY VAR → SAME SAME; STORVAR SCAN ¬ERR2
ANY ANY , → SAME; SCAN ≡DCL
ANY → SAME; ↑
FORST:VAR ← → SAME; PUTIND SCAN ↓EXPR ¬ERR3
STEP→; PUTINIT SCAN ↓EXPR ¬ERR4
UNTIL→; PUTSTEP SCAN ↓EXPR ¬ERR5
DO→; PUTFINAL PUSHSTAT SCAN ↓STMT ¬ERR6
→; POPSTAT PUTBODY ↑
ASSGNT: ANY ← →; LEFTPART SCAN ↓EXPR ¬ERR8
ANY → SAME; RIGHTPART ↑
EXPR:TINTVAR →; PUTEXPR SCAN ↑
TINTEGER →; PUTEXPR SCAN ↑ ¬ERR7
ERR0: ANY →; ERR ≡finstat
ERR1: ANY →; ERR ↑
ERR2: ANY →; ERR ↑
ERR3: ANY →; ERR ↑
ERR4: ANY →; ERR ↑
ERR5:ANY →; ERR ↑
ERR6:ANY →; ERR ↑
ERR7:ANY →; ERR ↑
ERR8:ANY →; ERR ↑
FIN: →;